job_name: mesa-deqp-{{ deqp_version }}-{{ gpu_version }} {{ pipeline_info }}
device_type: {{ device_type }}
context:
  extra_nfsroot_args: " init=/init rootwait"
timeouts:
  job:
    minutes: 40
  action:
   minutes: 10
  actions:
    power-off:
      seconds: 30
priority: 75
visibility: public
{% if tags %}
{% set lavatags = tags.split(',') %}
tags:
{% for tag in lavatags %}
  - {{ tag }}
{% endfor %}
{% endif %}
actions:
- deploy:
    timeout:
      minutes: 10
    to: tftp
    kernel:
      url: {{ base_artifacts_url }}/{{ kernel_image_name }}
{% if kernel_image_type %}
      {{ kernel_image_type }}
{% endif %}
    nfsrootfs:
      url: {{ base_artifacts_url }}/lava-rootfs.tgz
      compression: gz
{% if dtb %}
    dtb:
      url: {{ base_artifacts_url }}/{{ dtb }}.dtb
{% endif %}
    os: oe
- boot:
    timeout:
      minutes: 5
    method: {{ boot_method }}
{% if boot_method == "fastboot" %}
{#
   For fastboot, LAVA doesn't know how to unpack the rootfs/apply overlay/repack,
   so we transfer the overlay over the network after boot.
#}
    transfer_overlay:
      download_command: wget -S --progress=dot:giga
      unpack_command: tar -C / -xzf
{% else %}
    commands: nfs
{% endif %}
    prompts:
      - 'lava-shell:'
- test:
    timeout:
      minutes: 60
    definitions:
    - repository:
        metadata:
          format: Lava-Test Test Definition 1.0
          name: deqp
          description: "Mesa dEQP test plan"
          os:
          - oe
          scope:
          - functional
        run:
          steps:
          - mount -t proc none /proc
          - mount -t sysfs none /sys 
          - mount -t devtmpfs none /dev || echo possibly already mounted
          - mkdir -p /dev/pts
          - mount -t devpts devpts /dev/pts
          - echo "nameserver 8.8.8.8" > /etc/resolv.conf
          - for i in 1 2 3; do sntp -sS pool.ntp.org && break || sleep 2; done

          # amdgpu failed to find its firmware during boot, rebind
          - echo 0000:00:01.0 > /sys/bus/pci/drivers/amdgpu/bind || true

{% if env_vars %}
          - export {{ env_vars }}
{% endif %}

          # deqp-runner.sh assumes some stuff is in pwd
          - cd /

          - wget -S --progress=dot:giga -O- {{ mesa_url }} | tar -xz

          - export DEQP_NO_SAVE_RESULTS=1
          - 'export DEQP_RUNNER_OPTIONS="--shuffle false"'
          - export DEQP_EXPECTED_FAILS=deqp-{{ gpu_version }}-fails.txt
          - export DEQP_SKIPS=deqp-{{ gpu_version }}-skips.txt
          - export DEQP_VER={{ deqp_version }}
          - export LIBGL_DRIVERS_PATH=`pwd`/install/lib/dri

          - "if sh /install/deqp-runner.sh; then
                  echo 'deqp: pass';
             else
                  echo 'deqp: fail';
             fi"
        parse:
          pattern: '(?P<test_case_id>\S*):\s+(?P<result>(pass|fail))'
      from: inline
      name: deqp
      path: inline/mesa-deqp.yaml
